1. Field of the Invention
The present invention relates to the fast destaging method using a parity engine, and more particularly to the fast destaging method for constituting and administering cache of the disk array in order to minimize degradation of write performance which occurs in the high-speed disk array controller using a VRAM parity engine.
2. Description of the Related Prior Art
Generally, the disk array system is of high performance and of large capacity, which distributes and accommodates data into a plurality of independent disks to operate as a big disk. However, viewing that in the disk array system data are distributed and accommodated into many disks, only one disk failure can cause the whole system data to get damaged and unable to be retrieved. To overcome this problem, RAID system provides recovery method of damaged data by utilizing secondary data such as Disk Mirroring or ECC code or parity data. According to their features and manuals of those secondary data, the system is to be classified into multiple RAID levels, and RAID level 5, which disperses and accommodates parity data into multiple disks, is frequently used.
The disk array system operating in RAID level 5 is extensively used as a large storage device which achieves high availability through parity storage and high I/O rate through a block interleaving. In spite of a disk failure, the parity block for the whole data block always should be calculated and stored so as to retrieve the disk data. Therefore, at each write request additional three disk I/O are required, which gracefully degrades write performance.
If the loads of disk I/O increase, the number of I/O to limited disks gracefully increases, which degrades write performance and the overall disk I/O performance.
To minimize the performance degradation by write operations in a RAID level 5 disk array, the delayed writes technique is used. The delayed writes technique cannot reduce the number of disk I/O without increasing hit ratio of the write cache. However, the host system using a disk array also involves a buffer cache in its operating system and thereby it is hard to expect high hit ratio of cache. In case that cache miss occurs and no new block is available to allocate to the write cache, one of the blocks resident in cache should be written onto the disk and evacuated, which is termed destaging. Destaging consists of three operations at large. Firstly, to calculate a new parity block, the old data block is to be read from the data disk and the old parity block is to be read from the parity disk. Secondly, a new parity block is obtained by exclusive OR'ing(XOR'ing) the destaging block and the old data and the old parity block. Finally, when parity operation terminates, the destaging block and the new parity block are stored in a disk, and subsequently the destaging block is removed from the cache, and then destaging operation is terminated. If cache miss frequently occurs, it is necessarily needed to reduce destaging number and destaging time in order to avoid degradation of performance.
FIG. 1 shows the architecture of former disk array 1 which has the disk cache 3, the old data cache 4, the old parity cache 5, exclusive OR 2 and a plurality of disks. In the disk array controller which utilizes the former write cache, two reads and two writes are generated in the data disk and the parity disk at destaging, and thereby the performance greatly degrades even with a slightly increase of write miss ratio. In order to relieve the burden of reading the old data and the old parity for destaging, the method was also proposed that two reads can be reduced at destaging by installing extra cache for the old data and the old parity. The method has its drawbacks in that the cost is high due to extra cache and in that cache block is diminished enough to drop hit ratio of cache in the case of dividing the limited cache capacity into three parts.